package com.cskaoyan.api;

/*
        设置或获取线程的名称
            public final String getName()
            public final void setName(String name)

        思考，如何获取main线程的名称呢？
        a. 首先要输出线程的名称，要么有线程对象(不是我们创建)，要么自己定义线程类(不是我们定义)
        b. Static Thread currentThread() 该方法在哪个线程中被调用，返回那个线程对象的引用
          返回对当前正在执行的线程对象的引用。



 */
public class Demo1Name {

    public static void main(String[] args) {

        // 创建Thread子类对象
        NameThread nameThread = new NameThread();

        // setName方法设置线程的名称
        nameThread.setName("nameThread");


        // 获取线程名称
        String name = nameThread.getName();
        //System.out.println(name); // 默认的线程名称，Thread-x，x指的是当前jvm中线程编号

        // 启动线程
        //nameThread.start();

        // 获取main线程的名称
        // Static Thread currentThread()
        Thread main = Thread.currentThread();
        String mainThreadName = main.getName();
        System.out.println(mainThreadName); //main

    }
}

class NameThread extends Thread{

    @Override
    public void run() {
        // 获取当前线程的名称
        System.out.println(this.getName() + " ：hello, thread");
    }
}
